package fr.grobim.hangovers.gestionBudget.actions.comptes;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
import org.springframework.beans.factory.annotation.Autowired;

import fr.grobim.hangovers.gestionBudget.services.comptes.MembreService;
import fr.grobim.hangovers.gestionBudget.actions.enums.AttributsSession;
import fr.grobim.hangovers.gestionBudget.actions.support.AbstractActionSupport;
import fr.grobim.hangovers.gestionBudget.beans.comptes.Membre;

@Namespace(value = "/")
@ResultPath(value = "/")
public class ConnexionAction extends AbstractActionSupport {

	private static final long serialVersionUID = -862002317203205165L;

	@Autowired
	private MembreService membreService;

	private String login;

	private String motDePasse;
	
	@Action(value = "connexion", results = {
			@Result(location = "accueil.menus", type = "tiles")})
	public String execute() throws Exception {
		String retourAction;
		
		Membre membreConnecte = this.membreService.connexion(login, motDePasse);
		
		if (membreConnecte != null) {
			
			membreConnecte.getCompteUtilisateur().setReglementsFacture(null);
			getSession().put(AttributsSession.MEMBRE_CONNECTE.getClee(), membreConnecte);
			retourAction = SUCCESS;
		} else {
			
			retourAction = LOGIN;
			addActionError(getText("connexion.erreur.authentification"));
			
		}
		return retourAction;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getMotDePasse() {
		return motDePasse;
	}

	public void setMotDePasse(String motDePasse) {
		this.motDePasse = motDePasse;
	}
	
}
